﻿using IM.Easy.Core.Security;
using IM.Easy.Core.SeedData;
using IM.Easy.Entity.System;
using SqlSugar;

namespace IM.Easy.Api.SeedData
{
    public class SysMenuSeed : MemorySeedData<SysMenu>, ISqlSugarSeed<SysMenu>
    {
        public override List<SysMenu> Read()
        {
            List<SysMenu> menus = [];

            menus.Add(new SysMenu { Id = 1, Path = "/index", Name = "工作台", Component = "dashboard/index", Icon = "home", Order = 0, ParentId = 0, MenuType = MenuType.Menu, RequiresAuth = false });
            menus.Add(new SysMenu { Id = 2, Path = "/system", Name = "系统管理", Icon = "system", Order = 2, ParentId = 0, MenuType = MenuType.Directory });
            menus.Add(new SysMenu { Id = 3, Path = "menu", Name = "菜单资源", Component = "system/menu/index", Icon = "dashboard", IsSystem = true, MenuType = MenuType.Menu, Perm = ["menu:list", "menu:info"], Order = 0, ParentId = 12 });
            menus.Add(new SysMenu { Id = 4, Path = "dict", Name = "字典管理", Component = "system/dict/index", Icon = "dict", IsSystem = true, MenuType = MenuType.Menu, Order = 5, ParentId = 2 });
            menus.Add(new SysMenu { Id = 6, Path = "/message", Name = "消息日志", Icon = "message", MenuType = MenuType.Directory, Order = 3, ParentId = 0 });
            menus.Add(new SysMenu { Id = 7, Path = "index", Name = "系统消息", Icon = "message", IsActive = false, MenuType = MenuType.Menu, Order = 0, ParentId = 6 });
            menus.Add(new SysMenu { Id = 8, Path = "log/session", Name = "登录日志", Component = "log/session/index", Icon = "log", MenuType = MenuType.Menu, Order = 0, ParentId = 6 });
            menus.Add(new SysMenu { Id = 9, Path = "error", Name = "错误日志", Component = "log/exception/index", Icon = "bug", MenuType = MenuType.Menu, Order = 0, ParentId = 6 });
            menus.Add(new SysMenu { Id = 10, Path = "/quick/tool", Name = "快速开发工具", Icon = "build", MenuType = MenuType.Directory, Order = 999, ParentId = 0 });
            menus.Add(new SysMenu { Id = 11, Path = "gen", Name = "代码生成", Component = "tool/gen/index", Icon = "post", MenuType = MenuType.Menu, Order = 1, ParentId = 10 });
            menus.Add(new SysMenu { Id = 12, Path = "/permission", Name = "权限管理", Icon = "password", MenuType = MenuType.Directory, Order = 2, ParentId = 0 });
            menus.Add(new SysMenu { Id = 13, Path = "role", Name = "角色管理", Component = "system/role/index", Icon = "peoples", MenuType = MenuType.Menu, Perm = ["role:list"], Order = 1, ParentId = 12, });
            menus.Add(new SysMenu { Id = 15, Path = "/user", Name = "用户管理", Icon = "user", MenuType = MenuType.Directory, Order = 1, ParentId = 0, });
            menus.Add(new SysMenu { Id = 16, Path = "local", Name = "账号管理", Component = "system/user/index", Icon = "peoples", MenuType = MenuType.Menu, Perm = ["user:list"], Order = 0, ParentId = 15 });
            menus.Add(new SysMenu { Id = 17, Path = "org", Name = "部门组织", Component = "system/dept/index", Icon = "tree", MenuType = MenuType.Menu, Perm = ["dept:list"], Order = 0, ParentId = 12 });
            menus.Add(new SysMenu { Id = 18, Path = "parm", Name = "参数配置", Component = "system/settings/index", Icon = "system", MenuType = MenuType.Menu, FuncKey = "", Perm = [], Order = 0, ParentId = 2 });
            menus.Add(new SysMenu { Id = 19, Path = "notice", Name = "通知公告", Component = "system/notice/index", Icon = "message", IsActive = false, Visible = false, MenuType = MenuType.Menu, Order = 0, ParentId = 2 });
            menus.Add(new SysMenu { Id = 20, Path = "mirror", Name = "编辑器", Component = "tool/codomirror/index", Icon = "code", ParentId = 10, MenuType = MenuType.Menu });
            menus.Add(new SysMenu { Id = 21, Path = "online", Name = "在线用户", Component = "monitor/online/index", Icon = "online", ParentId = 15, MenuType = MenuType.Menu, Perm = ["online:user"] });
            menus.Add(new SysMenu { Id = 23, Path = "endpoint", Name = "接口管理", Component = "system/api/index", Icon = "documentation", Order = 3, ParentId = 12, MenuType = MenuType.Menu, Perm = ["api:perm"] });
            menus.Add(new SysMenu { Id = 24, Path = "#", Name = "同步接口", ParentId = 23, MenuType = (MenuType)2, FuncKey = "api:perm:sync", Perm = ["api:perm:sync", "api:perm:diff"] });
            menus.Add(new SysMenu { Id = 25, Path = "#", Name = "修改信息", ParentId = 23, MenuType = (MenuType)2, FuncKey = "api:perm:put", Perm = ["api:perm:put", "api:perm:info"] });
            menus.Add(new SysMenu { Id = 26, Path = "#", Name = "新增按钮", ParentId = 3, MenuType = (MenuType)2, FuncKey = "menu:add", Perm = ["menu:add"] });
            menus.Add(new SysMenu { Id = 27, Path = "#", Name = "修改按钮", ParentId = 3, MenuType = (MenuType)2, FuncKey = "menu:edit", Perm = ["menu:put", "menu:info"] });
            menus.Add(new SysMenu { Id = 28, Path = "#", Name = "删除按钮", ParentId = 3, MenuType = (MenuType)2, FuncKey = "menu:del", Perm = ["menu:del"] });
            menus.Add(new SysMenu { Id = 30, Path = "#", Name = "分配用户", ParentId = 13, MenuType = (MenuType)2, FuncKey = "role:user", Perm = ["role:user:unassigned:list", "role:user:assigned:list", "role:user:assign"] });
            menus.Add(new SysMenu { Id = 31, Path = "#", Name = "分配资源", ParentId = 13, MenuType = (MenuType)2, FuncKey = "role:resource", Perm = ["menu:role", "auth:cancel", "role:menu:assigned", "menu:list"] });
            menus.Add(new SysMenu { Id = 32, Path = "#", Name = "添加角色", ParentId = 13, MenuType = (MenuType)2, FuncKey = "role:add", Perm = ["role:add"] });
            menus.Add(new SysMenu { Id = 33, Path = "#", Name = "删除角色", ParentId = 13, MenuType = (MenuType)2, FuncKey = "role:del", Perm = ["role:del"] });
            menus.Add(new SysMenu { Id = 34, Path = "#", Name = "编辑角色", ParentId = 13, MenuType = (MenuType)2, FuncKey = "role:edit", Perm = ["role:put"] });
            menus.Add(new SysMenu { Id = 35, Path = "#", Name = "新增部门", ParentId = 17, MenuType = (MenuType)2, FuncKey = "dept:add", Perm = ["dept:add"] });
            menus.Add(new SysMenu { Id = 36, Path = "", Name = "修改部门", ParentId = 17, MenuType = (MenuType)2, FuncKey = "dept:edit", Perm = ["dept:info", "dept:put"] });
            menus.Add(new SysMenu { Id = 37, Path = "#", Name = "删除部门", ParentId = 17, MenuType = (MenuType)2, FuncKey = "dept:del", Perm = ["dept:del"] });
            menus.Add(new SysMenu { Id = 38, Path = "#", Name = "列表查询", ParentId = 17, MenuType = (MenuType)2, FuncKey = "dept:list", Perm = ["dept:list"] });
            menus.Add(new SysMenu { Id = 39, Path = "#", Name = "列表查询", ParentId = 18, MenuType = (MenuType)2, FuncKey = "param:list", Perm = ["params:list"] });
            menus.Add(new SysMenu { Id = 40, Path = "#", Name = "删除配置", ParentId = 18, MenuType = (MenuType)2, FuncKey = "param:del", Perm = ["params:delbatch", "params:del"] });
            menus.Add(new SysMenu { Id = 41, Path = "#", Name = "修改配置", ParentId = 18, MenuType = (MenuType)2, FuncKey = "param:edit", Perm = ["params:put", "params:info"] });
            menus.Add(new SysMenu { Id = 42, Path = "#", Name = "添加配置", ParentId = 18, MenuType = (MenuType)2, FuncKey = "param:add", Perm = ["params:add"] });
            menus.Add(new SysMenu { Id = 43, Path = "#", Name = "仅查看", ParentId = 18, MenuType = (MenuType)2, FuncKey = "param:info", Perm = ["params:info"] });
            menus.Add(new SysMenu { Id = 44, Path = "#", Name = "添加字典组", ParentId = 4, MenuType = (MenuType)2, FuncKey = "dict:add", Perm = ["dict:group:add"] });
            menus.Add(new SysMenu { Id = 45, Path = "#", Name = "修改字典组", ParentId = 4, MenuType = (MenuType)2, FuncKey = "dict:edit", Perm = ["dict:group:put"] });
            menus.Add(new SysMenu { Id = 46, Path = "#", Name = "删除字典组", ParentId = 4, MenuType = (MenuType)2, FuncKey = "dict:del", Perm = ["dict:group:bulk:del", "dict:group:del"] });
            menus.Add(new SysMenu { Id = 47, Path = "#", Name = "添加字典值", ParentId = 4, MenuType = (MenuType)2, FuncKey = "dict:item:add", Perm = ["dict:item:add"] });
            menus.Add(new SysMenu { Id = 50, Path = "#", Name = "修改字典值", ParentId = 4, MenuType = (MenuType)2, FuncKey = "dict:item:edit", Perm = ["dict:item:put"] });
            menus.Add(new SysMenu { Id = 51, Path = "#", Name = "删除字典值", ParentId = 4, MenuType = (MenuType)2, FuncKey = "dict:item:del", Perm = ["dict:item:bulk:del", "dict:item:del"] });
            menus.Add(new SysMenu { Id = 52, Path = "#", Name = "列表查看", ParentId = 8, MenuType = (MenuType)2, FuncKey = "signin:list", Perm = ["signin:list"] });
            menus.Add(new SysMenu { Id = 53, Path = "#", Name = "登录详情", ParentId = 8, MenuType = (MenuType)2, FuncKey = "signin:info", Perm = ["signin:info"] });
            menus.Add(new SysMenu { Id = 54, Path = "#", Name = "删除日志", ParentId = 8, MenuType = (MenuType)2, FuncKey = "signin:del", Perm = ["signin:del"] });
            menus.Add(new SysMenu { Id = 55, Path = "#", Name = "日志列表", ParentId = 9, MenuType = (MenuType)2, FuncKey = "exception:log:list", Perm = ["exception:log:list"] });
            menus.Add(new SysMenu { Id = 56, Path = "#", Name = "日志明细", ParentId = 9, MenuType = (MenuType)2, FuncKey = "exception:log:info", Perm = ["exception:log:info"] });
            menus.Add(new SysMenu { Id = 57, Path = "#", Name = "删除日志", ParentId = 9, MenuType = (MenuType)2, FuncKey = "exception:log:del", Perm = ["exception:log:del"] });
            menus.Add(new SysMenu { Id = 58, Path = "external", Name = "第三方账号", Component = "system/user/external/index", Icon = "user", Order = 1, ParentId = 15, MenuType = (MenuType)1, FuncKey = "user:external" });
            menus.Add(new SysMenu { Id = 59, Path = "#", Name = "用户列表", ParentId = 16, MenuType = (MenuType)2, FuncKey = "user:list", Perm = ["user:list", "dept:list"] });
            menus.Add(new SysMenu { Id = 60, Path = "#", Name = "新增用户", ParentId = 16, MenuType = (MenuType)2, FuncKey = "user:add", Perm = ["user:add"] });
            menus.Add(new SysMenu { Id = 61, Path = "#", Name = "删除用户", ParentId = 16, MenuType = (MenuType)2, FuncKey = "user:del", Perm = ["user:del"] });
            menus.Add(new SysMenu { Id = 62, Path = "#", Name = "修改信息", ParentId = 16, MenuType = (MenuType)2, FuncKey = "user:edit", Perm = ["user:put", "user:info"] });
            menus.Add(new SysMenu { Id = 63, Path = "config/oauth", Name = "第三方授权", Component = "system/config/oauth/index", Icon = "lock", Order = 6, ParentId = 2, MenuType = (MenuType)1, FuncKey = "oauth:config" });
            menus.Add(new SysMenu { Id = 64, Path = "#", Name = "状态修改", ParentId = 23, MenuType = (MenuType)2, FuncKey = "api:perm:status", Perm = ["api:perm:bulk:status"] });
            menus.Add(new SysMenu { Id = 66, Path = "#", Name = "列表查询", ParentId = 23, MenuType = (MenuType)2, FuncKey = "api:perm:list", Perm = ["api:perm:list"] });
            menus.Add(new SysMenu { Id = 69, Path = "resource", Name = "文件管理", Icon = "ele-FolderOpened", Order = 4, ParentId = 0, MenuType = (MenuType)0 });
            menus.Add(new SysMenu { Id = 70, Path = "index", Name = "文件资源", Component = "system/resource/index", Icon = "folder", ParentId = 69, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 71, Path = "type", Name = "文件类型", Component = "system/resource/type", Icon = "system", Order = 1, ParentId = 69, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 72, Path = "#", Name = "获取文件夹内容", Order = 2, ParentId = 70, MenuType = (MenuType)2, FuncKey = "folder:contents", Perm = ["folder:contents", "folder:info", "fileresource:info"] });
            menus.Add(new SysMenu { Id = 73, Path = "#", Name = "删除文件夹", ParentId = 70, MenuType = (MenuType)2, FuncKey = "folder:del", Perm = ["folder:del", "fileresource:del"] });
            menus.Add(new SysMenu { Id = 74, Path = "#", Name = "创建文件夹", ParentId = 70, MenuType = (MenuType)2, FuncKey = "folder:add", Perm = ["folder:add"] });
            menus.Add(new SysMenu { Id = 75, Path = "#", Name = "上传文件", ParentId = 70, MenuType = (MenuType)2, FuncKey = "fileresource:upload", Perm = ["fileresource:upload"] });
            menus.Add(new SysMenu { Id = 76, Path = "#", Name = "列表查询", ParentId = 71, MenuType = (MenuType)2, FuncKey = "filetypes:list", Perm = ["filetypes:list"] });
            menus.Add(new SysMenu { Id = 77, Path = "#", Name = "仅查看", ParentId = 71, MenuType = (MenuType)2, FuncKey = "filetypes:info", Perm = ["filetypes:info"] });
            menus.Add(new SysMenu { Id = 78, Path = "#", Name = "修改类型", ParentId = 71, MenuType = (MenuType)2, FuncKey = "filetypes:edit", Perm = ["filetypes:put"] });
            menus.Add(new SysMenu { Id = 79, Path = "#", Name = "删除类型", ParentId = 71, MenuType = (MenuType)2, FuncKey = "filetypes:del", Perm = ["filetypes:del"] });
            menus.Add(new SysMenu { Id = 80, Path = "#", Name = "新增类型", ParentId = 71, MenuType = (MenuType)2, FuncKey = "filetypes:add", Perm = ["filetypes:add"] });
            menus.Add(new SysMenu { Id = 81, Path = "operation", Name = "操作记录", Component = "log/tracking/index", Icon = "logininfor", ParentId = 6, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 82, Path = "#", Name = "删除日志", ParentId = 81, MenuType = (MenuType)2, FuncKey = "operation:del", Perm = ["operation:del"] });
            menus.Add(new SysMenu { Id = 83, Path = "#", Name = "操作明细", ParentId = 81, MenuType = (MenuType)2, FuncKey = "operation:info", Perm = ["operation:info"] });
            menus.Add(new SysMenu { Id = 84, Path = "#", Name = "操作列表", ParentId = 81, MenuType = (MenuType)2, FuncKey = "operation:list", Perm = ["operation:list"] });
            menus.Add(new SysMenu { Id = 85, Path = "svgIcon", Name = "图标管理", Component = "system/svgIcon/index", Icon = "icon", ParentId = 2, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 86, Path = "#", Name = "查看", ParentId = 85, MenuType = (MenuType)2, FuncKey = "svgicon:list" });
            menus.Add(new SysMenu { Id = 87, Path = "#", Name = "删除", ParentId = 85, MenuType = (MenuType)2, FuncKey = "svgicon:del", Perm = ["svgicon:del"] });
            menus.Add(new SysMenu { Id = 88, Path = "#", Name = "修改图标", ParentId = 85, MenuType = (MenuType)2, FuncKey = "svgicon:edit", Perm = ["svgicon:put"] });
            menus.Add(new SysMenu { Id = 89, Path = "#", Name = "新增图标", ParentId = 85, MenuType = (MenuType)2, FuncKey = "svgicon:add", Perm = ["svgicon:add"] });
            menus.Add(new SysMenu { Id = 93, Path = "/schedule", Name = "定时作业", Component = "schedule/index", Icon = "time", Order = 1, ParentId = 2, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 94, Path = "#", Name = "添加任务", ParentId = 93, MenuType = (MenuType)2, FuncKey = "schedule:add" });
            menus.Add(new SysMenu { Id = 95, Path = "#", Name = "启动任务", ParentId = 93, MenuType = (MenuType)2, FuncKey = "schedule:startup" });
            menus.Add(new SysMenu { Id = 96, Path = "#", Name = "暂停任务", ParentId = 93, MenuType = (MenuType)2, FuncKey = "schedule:pause" });
            menus.Add(new SysMenu { Id = 97, Path = "#", Name = "恢复任务", ParentId = 93, MenuType = (MenuType)2, FuncKey = "schedule:resume" });
            menus.Add(new SysMenu { Id = 98, Path = "#", Name = "删除任务", ParentId = 93, MenuType = (MenuType)2, FuncKey = "schedule:del" });
            menus.Add(new SysMenu { Id = 99, Path = "#", Name = "单独执行", ParentId = 93, MenuType = (MenuType)2, FuncKey = "schedule:once" });
            menus.Add(new SysMenu { Id = 100, Path = "wf", Name = "任务事项", Icon = "message", IsActive = false, Visible = false, Order = 1, ParentId = 0, MenuType = (MenuType)0 });
            menus.Add(new SysMenu { Id = 101, Path = "task", Name = "待办事项", Component = "workflow/task/index", Icon = "cascader", ParentId = 100, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 102, Path = "mine", Name = "我的事项", Component = "workflow/mine/index", Icon = "user", ParentId = 100, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 103, Path = "msg", Name = "消息邮箱", Icon = "message", Order = 1, ParentId = 0, MenuType = (MenuType)0 });
            menus.Add(new SysMenu { Id = 104, Path = "emails", Name = "收件箱", Component = "msg/emails/index", Icon = "email", ParentId = 103, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 105, Path = "mailsend", Name = "写邮件", Component = "msg/mailssend/index", Icon = "edit", ParentId = 103, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 106, Path = "#", Name = "写邮件", ParentId = 105, MenuType = (MenuType)2, FuncKey = "msg:email:save", Perm = ["msg:email:save"] });
            menus.Add(new SysMenu { Id = 107, Path = "#", Name = "获取邮件", ParentId = 105, MenuType = (MenuType)2, FuncKey = "msg:email:info", Perm = ["msg:email:list", "msg:email:info"] });
            menus.Add(new SysMenu { Id = 109, Path = "#", Name = "删除邮件", ParentId = 105, MenuType = (MenuType)2, FuncKey = "msg:email:del", Perm = ["msg:email:del"] });
            menus.Add(new SysMenu { Id = 110, Path = "#", Name = "获取收件箱", ParentId = 104, MenuType = (MenuType)2, FuncKey = "msg:emailinbox:list", Perm = ["msg:emailinbox:list"] });
            menus.Add(new SysMenu { Id = 111, Path = "#", Name = "读取邮件", ParentId = 104, MenuType = (MenuType)2, FuncKey = "msg:emailinbox:read", Perm = ["msg:emailinbox:read"] });
            menus.Add(new SysMenu { Id = 112, Path = "#", Name = "删除邮件", ParentId = 104, MenuType = (MenuType)2, Perm = ["msg:emailinbox:del"] });
            menus.Add(new SysMenu { Id = 113, Path = "#", Name = "发邮件", ParentId = 104, MenuType = (MenuType)2, FuncKey = "msg:email:send", Perm = ["msg:email:send"] });
            menus.Add(new SysMenu { Id = 114, Path = "about", Name = "关于项目", Component = "about", Icon = "ele-InfoFilled", Order = 999, ParentId = 0, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 115, Path = "#", Name = "日志开关", Component = null, Icon = null, Order = 0, ParentId = 23, MenuType = (MenuType)2 });
            menus.Add(new SysMenu { Id = 116, Path = "#", Name = "类型变更", Component = null, Icon = null, Order = 0, ParentId = 17, MenuType = (MenuType)2 });
            menus.Add(new SysMenu { Id = 1911270711142518784, Path = "post", Name = "岗位管理", Component = "system/post/index", Icon = "post", Order = 0, ParentId = 12, MenuType = (MenuType)1 });
            menus.Add(new SysMenu { Id = 1911583440566882304, Path = "#", Name = "添加岗位", Component = null, Icon = null, Order = 0, ParentId = 1911270711142518784, MenuType = (MenuType)2 });
            menus.Add(new SysMenu { Id = 1911585090308280320, Path = "#", Name = "编辑岗位", Component = null, Icon = null, Order = 0, ParentId = 1911270711142518784, MenuType = (MenuType)2 });
            menus.Add(new SysMenu { Id = 1911585163524050944, Path = "#", Name = "删除岗位", Component = null, Icon = null, Order = 0, ParentId = 1911270711142518784, MenuType = (MenuType)2 });
            menus.Add(new SysMenu { Id = 1915248444755283968, Path = "#", Name = "刷新缓存", Component = null, Icon = null, Order = 0, ParentId = 4, MenuType = (MenuType)2 });
            menus.Add(new SysMenu { Id = 1915248775572623360, Path = "#", Name = "导出组织机构", Component = null, Icon = null, Order = 0, ParentId = 17, MenuType = (MenuType)2 });
            menus.Add(new SysMenu { Id = 1922627945684406272, Path = "job", Name = "作业日志", Component = "log/job/index", Icon = "ele-Coin", Order = 0, ParentId = 6, MenuType = (MenuType)1, Perm = ["job:log:list"], RequiresAuth = true });
            menus.Add(new SysMenu { Id = 1923300688142667776, Path = "#", Name = "日志明细", Component = null, Icon = null, Order = 0, ParentId = 1922627945684406272, MenuType = (MenuType)2, Perm = ["job:log:info"], FuncKey = "job:log:info" });
            menus.Add(new SysMenu { Id = 1923300767586979840, Path = "#", Name = "删除日志", Component = null, Icon = null, Order = 0, ParentId = 1922627945684406272, MenuType = (MenuType)2, Perm = ["job:log:del"], FuncKey = "job:log:del" });
            return menus;
        }

    }

}
